The invention is a system or method for managing devices (collectively a “device management system” or simply the “system”).
Enhancements in the functionality of various complex and sophisticated device configurations are not limited to the confines of the devices themselves. Increasingly sophisticated technological configurations require many different devices to act in concert with each other in a highly integrated manner. Different “black box” or even “plug-and-play” components can be used in a highly flexible and even interchangeable manner while at the same time, the aggregate systems utilizing those same components can be subjected to highly rigorous integration requirements. In a sophisticated configuration of devices, the integrated functionality of the aggregate system can substantially exceed the sum of its parts. Such integrated functionality can also be an important way to enhance the functionality of each individual device, and the ways in which human beings interact with those devices.
It is often difficult to implement highly integrated device configurations in an efficient, error-free, and timely manner. Programming logic relying heavily on complex “nested if” statements is typically used to implement various decision-trees that embody integrated configuration attributes. For example, if device A has status m, device B has status n, and device C has status o, the system can be configured to use input p to generate output q from device D. A change of even a single variable can generate a potentially radically different outcome. Thus, the development of new configurations through the modification of old configurations can often fail to provide time, cost, and accuracy advantages. The more numerous the devices and the more subtle the potential configuration distinctions, the greater the likelihood for error, inefficiency, and a cost prohibitive implementation processes.
The implementation of an enhanced system or method for device management is actively and affirmatively hampered by differences in the technical communities involved in the development of computer software. There are significant cultural, historical, and educational differences between software development in the context of general purpose computing, and software development in the context of embedded environments such as programmable logic devices, embedded computers, and other smart devices (collectively “smart devices”) with purposes beyond the functionality of running computer software.